pp108 : Port Ranges within Process Platform

Port Ranges within Process Platform

A networked server, must use server ports to communicate between Java processes, especially when running as a cluster. It uses two types of ports, namely configured ports (will be reused after a restart) and anonymous ports.

The range of ports that must be taken can be limited, if needed. Modify the following properties in the General Properties

Property Description Default Value
com.eibus.port.range
For configured ports, only the ports within this range will be used. 10000-32767
com.eibus.port.range.anonymous
For anonymous ports, only the ports within this range will be used.  Ephemeral port range as per the operating system (see below table for more info)
Example
com.eibus.port.range=10000-32767
com.eibus.port.range.anonymous=49152-65535

It is suggested not to overlap the port ranges of the two types of ports, as it may lead to unexpected behavior.

The following table lists the OS specific ranges of ephemeral ports:

OS Ephemeral port range URL
AIX Uses two separate ephemeral port ranges; one for TCP and the other for UDP. Default values for both the ranges are between 32768 and 65535. Info
Linux Most of the Linux kernels use the port range between 32768 and 61000. Info
Solaris Uses two separate ephemeral port ranges; one for TCP and and the other for UDP. Default values for both the ranges are between 32768 and 65535. Info
Windows Windows Server 2008 and later versions use a default range of values between 49152 and 65535. (warning) Info link to be added

Backwards compatibility 

Previously, the ports that influence the port ranges were set as follows:

Anonymous port ranges (deprecated)

If no value is provided for the anonymous range, it will be retrieved from the following:

bus.anonymous.ports.minValue=
bus.anonymous.ports.maxValue=

Gossip client port ranges

Gossip uses the clientPortRangeStart  and clientPortRangeEnd  properties provided through the JMX properties (Gossip (Managed Components)) for binding the client sockets. If these values are specified according to the default levels (both 0), then the JVM implementation will use the ephemeral port range.